package com.hskn.hss.module.kfkdeal.entity.car;

import com.hskn.hss.module.carTrack.entity.CarTrack;
import com.hskn.hss.module.grid.entity.Grid;
import com.hskn.hss.module.tlcar.entity.TlCar;
import com.hskn.hss.module.tlcartype.entity.TlCarType;
import com.hskn.hss.module.workkaoqin.entity.WorkKaoqin;
import com.hskn.hss.module.workrule.entity.WorkRule;
import com.hskn.hss.module.workruleitem.entity.WorkRuleItem;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author hskn
 * @since 2021-05-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class KfkHandleParam implements Serializable {

    private static final long serialVersionUID = 1L;

    /** kafka获取的数据 **/
    //car_track的id
    String carTrackId;
    //上传定位时间
    Date locationDate;
    //纬度
    String lat;
    //经度
    String lon;
    //车辆编号
    String eqpnum;
    //坐标经纬度
    String location;
    //在线状态：1 在线 0 不在线
    String state;
    //油量百分比(整数部分)
    Double oilmass;
    //剩余油量
    BigDecimal remainingOil;
    //油量百分比
    Double oilPercent;
    //车辆行驶里程
    Double mileage;
    //开关
    String status;
    //速度（单位为1/10千米每小时）
    Integer speed;
    //方向
    String direction;
    //高度
    String altitude;

    /** 业务处理后获取的数据 **/
    //当前系统服务器时间
    Date currentSystemDate;
    //车辆ID
    String carId;
    //油箱
    Integer oilBox;
    //当前定位地址
    String currentAddress;
    //是否在网格内
    Boolean isInGrid = false;
    //是否在上班时间
    Boolean isInWorktime = false;
    //当前车辆定位数据
    CarTrack currentCarTrack;
    //上次车辆定位数据
    CarTrack preCarTrack;
    //车辆
    TlCar tlCar;
    //车辆类型
    TlCarType tlCarType;
    //考勤
    WorkKaoqin workKaoqin;
    //考勤开始时间
    Date shiftStartDate;
    //考勤结束时间
    Date shiftEndDate;

    //两点距离
    Double twoPointDistanceDiffer;
    //两点相差时间秒数
    Integer twoPointTimeDiffer;
    //停留状态：true停留 false移动
    Boolean ifStay;
    //作业
    kfkDealCarWorkPlan workPlan;
    //网格
    Grid grid;
    //作业规则
    WorkRule workRule;
    //作业规则项
    List<WorkRuleItem> workRuleItems;
    //kafka时间
    Date kfkTime;

    //检测时间内的平均值
    BigDecimal averageFuelConsumption;
    //检测时间间隔的总耗油
    BigDecimal oilMassSum;
    //检测时间间隔的总里程数
    BigDecimal mileageSum;
}
